//
//  HRWelcomeView.swift
//  微博
//
//  Created by 众力金融 on 2017/1/13.
//  Copyright © 2017年 众力金融. All rights reserved.
//

import UIKit

//欢迎视图
class HRWelcomeView: UIView {

    @IBOutlet weak var bottomCons: NSLayoutConstraint!
    @IBOutlet weak var iconVIew: UIImageView!
    @IBOutlet weak var describe: UILabel!
    //    override init(frame: CGRect) {
//        super.init(frame: frame)
//        backgroundColor = UIColor.red
//    }
//    
//    required init?(coder aDecoder: NSCoder) {
//        fatalError("init(coder:) has not been implemented")
//    }
    class func welcome() -> HRWelcomeView {
        let nib = UINib(nibName: "HRWelcomeView", bundle: nil)
        let v = nib.instantiate(withOwner: nil, options: nil)[0] as! HRWelcomeView
        v.frame = UIScreen.main.bounds
        return v
    }
    
   required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    //提示 initwithCode 只是刚刚从XIB的二进制文件将视图数据加载完成
    //还没有和代码连线建立关系 所以开发时 不要在这里处理UI
    }
    
    override func awakeFromNib() {
        //url
        print("HRNetworkManager~~~\(HRNetworkManager.shared.userAccount.avatar_large)")
        guard let urlString = HRNetworkManager.shared.userAccount.avatar_large,
              let url = URL(string: urlString)
            else {
            return
        }
        //设置头像
        iconVIew.setImageWith(url, placeholderImage: UIImage(named: "avatar_default_big"))
        iconVIew.layer.masksToBounds = true
        iconVIew.layer.cornerRadius = iconVIew.bounds.width * 0.5
        
    }
    //自动不觉系统更新完成约束后 会自动调用此方法
    //通常是对子视图布局进行修改
//    override func layoutSubviews() {
//        
//    }
    
    //视图被添加到window 上表示已经显示
    
    override func didMoveToWindow() {
        super.didMoveToWindow()
        //视图是使用自动布局来设置的 只是设置了约束
        //当视图被添加到窗口时 根据父视图大小 计算约束的值 更新控件位置
        //layoutIfNeeded会直接按照当前的约束直接更新控件的位置
        //执行之后 控件所在位置 就是XIB 中布局的位置
        self.layoutIfNeeded()
        bottomCons.constant = bounds.height - 200
        /**
         withDuration:动画时间
         delay:延迟时间
         usingSpringWithDamping: 弹力
         initialSpringVelocity:初始速度
         */
        //如果控件们的frame 还没有计算好 调用layoutIfNeeded 所有的约束会一起动画
        UIView .animate(withDuration: 1.0, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0, options: [], animations: {
            
            //更新约束
            self.layoutIfNeeded()
            
        }) { (_) in
            
            UIView .animate(withDuration: 1.0, animations: {
                self.describe.alpha = 1
            }, completion: { (_) in
                self.removeFromSuperview()
            })
        }
    }
    
    
}
